perm filename NBS.NOT[NBS,WD] blob sn#235041 filedate 1976-08-27 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00032 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00004 00002	\|\
C00005 00003
C00006 00004				The Initial Permutation
C00008 00005		These  are  the  selection functions S1...S8 of the NBS algorithm, which
C00013 00006		Each row of an S is a permutation of the numbers 0 through 15 and
C00015 00007					S5
C00017 00008		The process which decomposes a six bit number by taking  the  first  and
C00019 00009			Permuted Choice 1
C00021 00010		K1 through K16 are the 48 bit  subsets  of  the  64  bit  key
C00023 00011				    K5
C00025 00012				    K9
C00027 00013				    K13
C00029 00014		The following are the bits omitted in each of K1  through  K16,  by  the
C00035 00015		K1 through K16 are the 48 bit subsets of the 64 bit key employed in each
C00037 00016				    K5
C00039 00017				    K9
C00041 00018				    K13
C00043 00019		The following are the bits omitted in each of K1  through  K16,  by  the
C00044 00020		K1 through K16 are the 48 bit subsets of the 64 bit key employed in each
C00046 00021				    K5
C00048 00022				    K9
C00050 00023				    K13
C00052 00024		The following are  the bits omitted  in each of  K1 through K16,  by the
C00054 00025					PC2
C00056 00026	               Utilization of the key bits in the various rounds
C00060 00027	  B25	16   7   5  21      13  11  14      19   1  15  12  18  10   6		14
C00063 00028	  B49	 5   8  17   4      22      19   9  23   3      20   6   7  24		13
C00065 00029	               Utilization of the key bits in the various rounds
C00069 00030	  B27	32  39  28      35  27  47  30      26  45  36  43  37  44  25		14
C00073 00031	               Utilization of the key  Bits in the various rounds
C00077 00032	  B26	17      13  11  14   2   9  23  15  12  18  10  16  24   8  21		15
C00081 ENDMK
C⊗;
\|\
\M0FIX25X;	\unused
\M1FIX25;	\principle font
\M2FIX20;	\small font for wide tables
\M3FIX30;	\title font
\⊂'200455;\turn on flags outovl option, nest⊃quote, multiarg macros, lf sim,
\⊂'010000;\⊂'1000002;\
\←'0;\→#\∞EVERYPAGE[\P\←#\+=1;\→#\oEP{0    \D#}\WEP,=800;=2100;\p]\
\⊂'100;\  TO TURN ON EVERYPAGE MACRO
\F1




























\C \#\F3Notes on the National Bureau of Standards Data Encryption Standard\G



\C Whitfield Diffie

\C August 1976
			The Initial Permutation


				IP

	58	50	42	34	26	18	10	 2

	60	52	44	36	28	20	12	 4

	62	54	46	38	30	22	14	 6

	64	56	48	40	32	24	16	 8

	57	49	41	33	25	17	 9	 1

	59	51	43	35	27	19	11	 3

	61	53	45	37	29	21	13	 5

	63	55	47	39	31	23	15	 7


	The initial permutation can easily  be  seen  to  have  been  formed  as
follows.   The  numbers  1  through  64 were written from top to bottom and from
right to left in a square array eight elements on a side.  The  even  rows  were
then  separated  out and placed above the odd.  The result is then read off from
left to right and from top to bottom.

	IP may be decomposed into cycles as follows:

(1 58 55 13 28 40)

(2 50 53 29 32 8)

(3 42 51 45 27 48)

(4 34 49 61 31 16)

(5 26 56)

(6 18 54 21 30 24)

(7 10 52 37 25 64)

(9 60 39)

(11 4435 41 59 47)

(12 36 33 57 63 15)

(14 20 38 17 62 23)

(19 46)

(22)


	These  are  the  selection functions S1...S8 of the NBS algorithm, which
map 6 bit quantities to four bit ones.   The  image  of  a  six  bit  number  is
obtained  by  taking  the  first  and  last bits as the row number in one of the
following tables, and the middle four bits as the column number.
	Note that each row is a permutation of the numbers 0...15.

                                       S1
         14   4  13   1   2  15  11   8   3  10   6  12   5   9   0   7
          0  15   7   4  14   2  13   1  10   6  12  11   9   5   3   8
          4   1  14   8  13   6   2  11  15  12   9   7   3  10   5   0
         15  12   8   2   4   9   1   7   5  11   3  14  10   0   6  13

                                       S2
         15   1   8  14   6  11   3   4   9   7   2  13  12   0   5  10
          3  13   4   7  15   2   8  14  12   0   1  10   6   9  11   5
          0  14   7  11  10   4  13   1   5   8  12   6   9   3   2  15
         13   8  10   1   3  15   4   2  11   6   7  12   0   5  14   9

                                       S3
         10   0   9  14   6   3  15   5   1  13  12   7  11   4   2   8
         13   7   0   9   3   4   6  10   2   8   5  14  12  11  15   1
         13   6   4   9   8  15   3   0  11   1   2  12   5  10  14   7
          1  10  13   0   6   9   8   7   4  15  14   3  11   5   2  12

                                       S4
          7  13  14   3   0   6   9  10   1   2   8   5  11  12   4  15
         13   8  11   5   6  15   0   3   4   7   2  12   1  10  14   9
         10   6   9   0  12  11   7  13  15   1   3  14   5   2   8   4
          3  15   0   6  10   1  13   8   9   4   5  11  12   7   2  14

                                       S5
          2  12   4   1   7  10  11   6   8   5   3  15  13   0  14   9
         14  11   2  12   4   7  13   1   5   0  15  10   3   9   8   6
          4   2   1  11  10  13   7   8  15   9  12   5   6   3   0  14
         11   8  12   7   1  14   2  13   6  15   0   9  10   4   5   3

                                       S6
         12   1  10  15   9   2   6   8   0  13   3   4  14   7   5  11
         10  15   4   2   7  12   9   5   6   1  13  14   0  11   3   8
          9  14  15   5   2   8  12   3   7   0   4  10   1  13  11   6
          4   3   2  12   9   5  15  10  11  14   1   7   6   0   8  13

                                       S7
          4  11   2  14  15   0   8  13   3  12   9   7   5  10   6   1
         13   0  11   7   4   9   1  10  14   3   5  12   2  15   8   6
          1   4  11  13  12   3   7  14  10  15   6   8   0   5   9   2
          6  11  13   8   1   4  10   7   9   5   0  15  14   2   3  12

                                       S8
         13   2   8   4   6  15  11   1  10   9   3  14   5   0  12   7
          1  15  13   8  10   3   7   4  12   5   6  11   0  14   9   2
          7  11   4   1   9  12  14   2   0   6  10  13  15   3   5   8
          2   1  14   7   4  10   8  13  15  12   9   0   3   5   6  11


	Each row of an S is a permutation of the numbers 0 through 15 and
may be written as a product of cycles.

			S1

Row 1:	(0 14) (1 4 2 13 9 10 6 11 12 5 15 7 8 3)

Row 2:	(0) (1 15 8 10 12 9 6 13 5 2 7) (3 4 14) (11)

Row 3:	(0 4 13 10 9 12 3 8 15) (1) (2 14 5 6) (7 11)

Row 4:	(0 15 13) (1 12 10 3 2 8 5 9 11 14 6) (4) (7)


				S2

	(0 15 10 2 8 9 7 4 6 3 14 5 11 13) (1) (12)

	(0 3 7 14 11 10 1 13 9) (2 4 15 5) (6 8 12)

	(0) (1 14 2 7) (3 11 6 13) (4 10 12 9 8 5) (15)

	(0 13 5 15 9 6 4 3 18 11 12) (2 10 7) (14)


				S3

	(0 10 12 11 7 5 3 14 2 9 13 4 6 15 8 1)

	(0 13 11 14 15 1 7 10 5 4 3 9 8 2)

	(0 13 10 2 4 8 11 12 5 15 7) (1 6 3 9) (14)

	(0 1 10 14 2 13 5 9 15 12 11 3) (4 6 8) (7)


				S4

	(0 7 10 8 1 13 12 11 5 6 9 2 14 4) (3) (15)

	(0 13 10 2 11 12 1 8 4 6) (3 5 15 9 7) (14)

	(0 10 3) (1 6 7 13 2 9) (4 12 5 11 14 8 15)

	(0 3 6 13 7 8 9 4 10 5 1 15 14 2) (11) (12)


				S5

	(0 2 4 7 6 11 15 9 5 10 3 1 12 13) (8) (14)

	(0 14 8 5 7 1 11 10 15 6 13 9) (2) (3 12) (4)

	(0 4 10 12 6  7 8 15 14) (1 2) (3 11 5 13) (9)

	(0 11 9 15 3 7 13 4 1 8 6 2 12 19) (5 14)


			S6

	(0 12 14 5 2 10 3 15 11 4 9 13 7 8) (1) (6)

	(0 10 13 11 14 3 2 4 7 5 12) (1 15 8 6 9)

	(0 9) (1 14 11 10 4 2 15 6 12) (3 5 8 7) (13)

	(0 4 9 14 8 11 7 10 1 3 12 6 15 13) (2) (5)


			S7

	(0 4 15 1 11 7 13 10 9 12 5) (2) (3 14 6 8)

	(0 13 15 6 1) (2 11 12) (3 7 10 5 9) (4) (8 14)

	(0 1 4 12) (2 11 8 10 6 7 14 9 15) (3 13 5)

	(0 6 10) (1 11 15 12 14 3 8 9 5 4) (2 13) (7)


			S8

	(0 13) (1 2 8 10 3 4 6 11 14 12 5 15 7) (9)

	(0 1 15 2 13 14 9 5 3 8 12) (4 10 6 7) (11)

	(0 7 2 4 9 6 14 5 12 15 8) (1 11 13 3) (10)

	(0 2 14 6 8 15 11) (1) (3 7 13 5 10 9 12) (4)

	The process which decomposes a six bit number by taking  the  first  and
last  bits to represent a row and the middle bits to represent a column, results
in elements being chosen from the any of the S tables in the following order.


     0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15

0    1   3   5   7   9  11  13  15  17  19  21  23  25  27  29  31  

1    2   4   6   8  10  12  14  16  18  20  22  24  26  28  30  32

2   33  35  37  39  41  43  45  47  49  51  53  55  57  59  61  63

3   34  36  38  40  42  44  46  48  50  52  54  56  58  60  62  64


				P

	16	 7	20	21	29	12	28	17

	 1	15	23	26	 5	18	31	10

	 2	 8	24	14	32	27	 3	 9

	19	13	30	 6	22	11	 4	25


	Written as a product of cycles, P becomes:

(1 16 10 15 31 4 21 32 25 19 24 9)
(2 7 28 6 12 26 13 5 29 22 27 30 11 23 3 20 14 18 8 17)


		Permuted Choice 1

	The structure of permuted choice 1 is  more  clearly  visible
when  it  is presented in 8 columns rather than 7.  The division into
two parts is maintained.  Each half has four and  one  half  rows  of
length eight.

	57	49	41	33	25	17	9	1
	58	50	42	34	26	18	10	2
	59	51	43	35	27	19	11	3
	60	52	44	36


	63	55	47	39	31	23	15	7
	62	54	46	38	30	22	14	6
	61	53	45	37	29	21	13	5
	28	20	12	4

	As the bits 8, 16, 24, 32, 40, 48, 56, and 64 are  not  used,
things  bocome  even clearer if the bits are renumbered from 1 to 56.
The above array then becomes:

	50	43	36	29	22	15	8	1
	51	44	37	30	23	16	9	2
	52	45	38	31	24	17	10	3
	53	46	39	32

	56	49	42	35	28	21	14	7
	55	48	41	34	27	20	13	6
	54	47	40	33	26	19	12	5
	25	18	11	4

	The  permutation  is  now clear.  Turn the lower group upside
down and slide the short row to the right, to get:

	50	43	36	29	22	15	8	1
	51	44	37	30	23	16	9	2
	52	45	38	31	24	17	10	3
	53	46	39	32

					25	18	11	4
	54	47	40	33	26	19	12	5
	55	48	41	34	27	20	13	6
	56	49	42	35	28	21	14	7

The  two parts can now be assembled into a rectangle written from top
to bottom and right to left.


	K1 through K16 are the 48 bit  subsets  of  the  64  bit  key
employed  in  each  of  the  16  rounds  of  the NBS cipher. They are
organized in eight rows of six columns, read across then down.


			    K1

	10	51	34	60	49	17
	33	57	 2	 9	19	42
	 3	35	26	25	44	58
	59	 1	36	27	18	41
	22	28	39	54	37	 4
	47	30	 5	53	23	29
	61	21	38	63	15	20
	45	14	13	62	55	31


			    K2

	 2	43	26	52	41	 9
	25	49	59	 1	11	34
	60	27	18	17	36	50
	51	58	57	19	10	33
	14	20	31	46	29	63
	39	22	28	45	15	21
	53	13	30	55	 7	12
	37	 6	 5	54	47	23


			    K3

	51	27	10	36	25	58
	 9	33	43	50	60	18
	44	11	 2	 1	49	34
	35	42	41	 3	59	17
	61	 4	15	30	13	47
	23	 6	12	29	62	 5
	37	28	14	39	54	63
	21	53	20	38	31	 7


			    K4

	35	11	59	49	 9	42
	58	17	27	34	44	 2
	57	60	51	50	33	18
	19	26	25	52	43	 1
	45	55	62	14	28	31
	 7	53	63	13	46	20
	21	12	61	23	38	47
	 5	37	 4	22	15	54


			    K5

	19	60	43	33	58	26
	42	 1	11	18	57	51
	41	44	35	34	17	 2
	 3	10	 9	36	27	50
	29	39	46	61	12	15
	54	37	47	28	30	 4
	 5	63	45	 7	22	31
	20	21	55	 6	62	38


			    K6

	 3	44	27	17	42	10
	26	50	60	 2	41	35
	25	57	19	18	 1	51
	52	59	58	49	11	34
	13	23	30	45	63	62
	38	21	31	12	14	55
	20	47	29	54	 6	15
	 4	 5	39	53	46	22


			    K7

	52	57	11	 1	26	59
	10	34	44	51	25	19
	 9	41	 3	 2	50	35
	36	43	42	33	60	18
	28	 7	14	29	47	46
	22	 5	15	63	61	39
	 4	31	13	38	53	62
	55	20	23	37	30	 6


			    K8

	36	41	60	50	10	43
	59	18	57	35	 9	 3
	58	25	52	51	34	19
	49	27	26	17	44	 2
	12	54	61	13	31	30
	 6	20	62	47	45	23
	55	15	28	22	37	46
	39	 4	 7	21	14	53


			    K9

	57	33	52	42	 2	35
	51	10	49	27	 1	60
	50	17	44	43	26	11
	41	19	18	 9	36	59
	 4	46	53	 5	23	22
	61	12	54	39	37	15
	47	 7	20	14	29	38
	31	63	62	13	 6	45


			    K10

	41	17	36	26	51	19
	35	59	33	11	50	44
	34	 1	57	27	10	60
	25	 3	 2	58	49	43
	55	30	37	20	 7	 6
	45	63	38	23	21	62
	31	54	 4	61	13	22
	15	47	46	28	53	29


			    K11

	25	 1	49	10	35	 3
	19	43	17	60	34	57
	18	50	41	11	59	44
	 9	52	51	42	33	27
	39	14	21	 4	54	53
	29	47	22	 7	 5	46
	15	38	55	45	28	 6
	62	31	30	12	37	13


			    K12

	 9	50	33	59	19	52
	 3	27	 1	44	18	41
	 2	34	25	60	43	57
	58	36	35	26	17	11
	23	61	 5	55	38	37
	13	31	 6	54	20	30
	62	22	39	29	12	53
	46	15	14	63	21	28


			    K13

	58	34	17	43	 3	36
	52	11	50	57	 2	25
	51	18	 9	44	27	41
	42	49	19	10	 1	60
	 7	45	20	39	22	21
	28	15	53	38	 4	14
	46	 6	23	13	63	37
	30	62	61	47	 5	12


			    K14

	42	18	 1	27	52	49
	36	60	34	41	51	 9
	35	 2	58	57	11	25
	26	33	 3	59	50	44
	54	29	 4	23	 6	 5
	12	62	37	22	55	61
	30	53	 7	28	47	21
	14	46	45	31	20	63


			    K15

	26	 2	50	11	36	33
	49	44	18	25	35	58
	19	51	42	41	60	 9
	10	17	52	43	34	57
	38	13	55	 7	53	20
	63	46	21	 6	39	45
	14	37	54	12	31	 5
	61	30	29	15	 4	47


			    K16

	18	59	42	 3	57	25
	41	36	10	17	27	50
	11	43	34	33	52	 1
	 2	 9	44	35	26	49
	30	 5	47	62	45	12
	55	38	13	61	31	37
	 6	29	46	 4	23	28
	53	22	21	 7	63	39


	The following are the bits omitted in each of K1  through  K16,  by  the
reduction from 56 to 48 bits.  These are called the "exception sets."

E1	6   7   8  11  12  16  24  32  40  43  46  48  50  52  56  64  
E2	3   4   8  16  24  32  35  38  40  42  44  48  56  61  62  64  
E3	8  16  19  22  24  26  32  40  45  46  48  52  55  56  57  64  
E4	3   6   8  10  16  24  29  30  32  36  39  40  41  48  56  64  
E5	8  13  14  16  23  24  25  32  40  48  49  52  53  56  59  64  
E6	7   8   9  16  24  28  32  33  36  37  40  43  48  56  61  64  
E7	8  12  16  17  21  24  27  32  40  45  48  49  54  56  58  64  
E8	1   5   8  11  16  24  29  32  33  38  40  42  48  56  63  64  
E9	3   8  16  21  24  25  28  30  32  34  40  48  55  56  58  64  
E10	5   8   9  12  14  16  18  24  32  39  40  42  48  52  56  64  
E11	2   8  16  20  23  24  26  32  36  40  48  56  58  61  63  64  
E12	4   7   8  10  16  24  32  40  42  45  47  48  49  51  56  64  
E13	8  16  24  26  29  31  32  33  35  40  48  54  55  56  59  64  
E14	8  10  13  15  16  17  19  24  32  38  39  40  43  48  56  64  
E15	1   3   8  16  22  23  24  27  28  32  40  48  56  59  62  64  
E16	8  14  15  16  19  20  24  32  40  48  51  54  56  58  60  64  

	The same sets arranged  so that the parity bits are alligned.

\#\F2
E1	 6  7  8 11 12    16       24          32          40 43 46    48 50 52    56          64
E2	 3  4  8          16       24          32 35 38    40 42 44    48          56 61 62    64
E3	       8          16 19 22 24 26       32          40 45 46    48 52 55    56 57       64
E4	 3  6  8 10       16       24 29 30    32 36 39    40 41       48          56          64
E5	       8 13 14    16 23    24 25       32          40          48 49 52 53 56 59       64
E6	 7     8  9       16       24 28       32 33 36 37 40 43       48          56 61       64
E7	       8 12       16 17 21 24 27       32          40 45       48 49 54    56 58       64
E8	 1  5  8 11       16       24 29       32 33 38    40 42       48          56 63       64
E9	 3     8          16 21    24 25 28 30 32 34       40          48 55       56 58       64 
E10	 5     8  9 12 14 16 18    24          32 39       40 42       48 52       56          64
E11	 2     8          16 20 23 24 26       32 36       40          48          56 58 61 63 64 
E12	 4  7  8 10       16       24          32          40 42 45 47 48 49 51    56          64
E13	       8          16       24 26 29 31 32 33 35    40          48 54 55    56 59       64
E14	       8 10 13 15 16 17 19 24          32 38 39    40 43       48          56          64
E15	 1  3  8          16 22 23 24 27 28    32          40          48          56 59 62    64
E16	       8 14 15    16 19 20 24          32          40          48 51 54    56 58 60    64
\G

	The exception sets with parity bits omitted.

E1	 6	 7	11	12	43	46	50	52		
E2	 3	 4	35	38	42	44	61	62	
E3	19	22	26	45	46	52	55	57	
E4	 3	 6	10	29	30	36	39	41	
E5	13	14	23	25	49	52	53	59	
E6	 7	 9	28	33	36	37	43	61	
E7	12	17	21	27	45	49	54	58
E8	 1	 5	11	29	33	38	42	63	
E9	 3	21	25	28	30	34	55	58
E10	 5	 9	12	14	18	39	42	52	
E11	 2	20	23	26	36	58	61	63	
E12	 4	 7	10	42	45	47	49	51	
E13	26	29	31	33	35	54	55	59	
E14	10	13	15	17	19	38	39	43	
E15	 1	 3	22	23	27	28	59	62	
E16	14	15	19	20	51	54	58	60	
	K1 through K16 are the 48 bit subsets of the 64 bit key employed in each
of the 16 rounds of the NBS cipher, renumbered from 1 to 56 by omitting the bits
8, 16, 24, 32, 40, 48, 56, and 64, which are never used. They are  organized  in
eight rows of six columns, read across then down.


			    K1

	 9	45	30	53	43	15
	29	50	 2	 8	17	37
	 3	31	23	22	39	51
	52	 1	32	24	16	36
	20	25	35	48	33	 4
	42	27	 5	47	21	26
	54	19	34	56	14	18
	40	13	12	55	49	28


			    K2

	 2	38	23	46	36	 8
	22	43	52	 1	10	30
	53	24	16	15	32	44
	45	51	50	17	 9	29
	13	18	28	41	26	56
	35	20	25	40	14	19
	47	12	27	49	 7	11
	33	 6	 5	48	42	21


			    K3

	45	24	 9	32	22	51
	 8	29	38	44	53	16
	39	10	 2	 1	43	30
	31	37	36	 3	52	15
	54	 4	14	27	12	42
	21	 6	11	26	55	 5
	33	25	13	35	48	56
	19	47	18	34	28	 7


			    K4

	31	10	52	43	 8	37
	51	15	24	30	39	 2
	50	53	45	44	29	16
	17	23	22	46	38	 1
	40	49	55	13	25	28
	 7	47	56	12	41	18
	19	11	54	21	34	42
	 5	33	 4	20	14	48


			    K5

	17	53	38	29	51	23
	37	 1	10	16	50	45
	36	39	31	30	15	 2
	 3	 9	 8	32	24	44
	26	35	41	54	11	14
	48	33	42	25	27	 4
	 5	56	40	 7	20	28
	18	19	49	 6	55	34


			    K6

	 3	39	24	15	37	 9
	23	44	53	 2	36	31
	22	50	17	16	 1	45
	46	52	51	43	10	30
	12	21	27	40	56	55
	34	19	28	11	13	49
	18	42	26	48	 6	14
	 4	 5	35	47	41	20


			    K7

	46	50	10	 1	23	52
	 9	30	39	45	22	17
	 8	36	 3	 2	44	31
	32	38	37	29	53	16
	25	 7	13	26	42	41
	20	 5	14	56	54	35
	 4	28	12	34	47	55
	49	18	21	33	27	 6


			    K8

	32	36	53	44	 9	38
	52	16	50	31	 8	 3
	51	22	46	45	30	17
	43	24	23	15	39	 2
	11	48	54	12	28	27
	 6	18	55	42	40	21
	49	14	25	20	33	41
	35	 4	 7	19	13	47


			    K9

	50	29	46	37	 2	31
	45	 9	43	24	 1	53
	44	15	39	38	23	10
	36	17	16	 8	32	52
	 4	41	47	 5	21	20
	54	11	48	35	33	14
	42	 7	18	13	26	34
	28	56	55	12	 6	40


			    K10

	36	15	32	23	45	17
	31	52	29	10	44	39
	30	 1	50	24	 9	53
	22	 3	 2	51	43	38
	49	27	33	18	 7	 6
	40	56	34	21	19	55
	28	48	 4	54	12	20
	14	42	41	25	47	26


			    K11

	22	 1	43	 9	31	 3
	17	38	15	53	30	50
	16	44	36	10	52	39
	 8	46	45	37	29	24
	35	13	19	 4	48	47
	26	42	20	 7	 5	41
	14	34	49	40	25	 6
	55	28	27	11	33	12


			    K12

	 8	44	29	52	17	46
	 3	24	 1	39	16	36
	 2	30	22	53	38	50
	51	32	31	23	15	10
	21	54	 5	49	34	33
	12	28	 6	48	18	27
	55	20	35	26	11	47
	41	14	13	56	19	25


			    K13

	51	30	15	38	 3	32
	46	10	44	50	 2	22
	45	16	 8	39	24	36
	37	43	17	 9	 1	53
	 7	40	18	35	20	19
	25	14	47	34	 4	13
	41	 6	21	12	56	33
	27	55	54	42	 5	11


			    K14

	37	16	 1	24	46	43
	32	53	30	36	45	 8
	31	 2	51	50	10	22
	23	29	 3	52	44	39
	48	26	 4	21	 6	 5
	11	55	33	20	49	54
	27	47	 7	25	42	19
	13	41	40	28	18	56


			    K15

	23	 2	44	10	32	29
	43	39	16	22	31	51
	17	45	37	36	53	 8
	 9	15	46	38	30	50
	34	12	49	 7	47	18
	56	41	19	 6	35	40
	13	33	48	11	28	 5
	54	27	26	14	 4	42


			    K16

	16	52	37	 3	50	22
	36	32	 9	15	24	44
	10	38	30	29	46	 1
	 2	 8	39	31	23	43
	27	 5	42	55	40	11
	49	34	12	54	28	33
	 6	26	41	 4	21	25
	47	20	19	 7	56	35


	The following are the bits omitted in each of K1  through  K16,  by  the
reduction from 56 to 48 bits.  The bits are numbered from 1 to 56.


E1	 6	 7	10	11	38	41	44	46	
E2	 3	 4	31	34	37	39	54	55	
E3	17	20	23	40	41	46	49	50	
E4	 3	 6	 9	26	27	32	35	36	
E5	12	13	21	22	43	46	47	52	
E6	 7	 8	25	29	32	33	38	54	
E7	11	15	19	24	40	43	48	51	
E8	 1	 5	10	26	29	34	37	56	
E9	 3	19	22	25	27	30	49	51	
E10	 5	 8	11	13	16	35	37	46	
E11	 2	18	21	23	32	51	54	56	
E12	 4	 7	 9	37	40	42	43	45	
E13	23	26	28	29	31	48	49	52	
E14	 9	12	14	15	17	34	35	38	
E15	 1	 3	20	21	24	25	52	55	
E16	13	14	17	18	45	48	51	53	
	K1 through K16 are the 48 bit subsets of the 64 bit key employed in each
of the 16 rounds of the NBS cipher, renumbered from 0 to 55 by omitting the bits
8, 16, 24, 32, 40, 48, 56, and 64, which are never used.  PC1  has been omitted.
They are organized in eight rows of six columns, read across then down.


			    K1

	14	17	11	24	 1	 5
	 3	 0	15	 6	21	10
	23	19	12	 4	26	 8
	16	 7	27	20	13	 2
	41	52	31	37	47	55
	30	40	51	45	33	48
	44	49	39	28	34	53
	46	42	50	36	29	32


			    K2

	15	18	12	25	 2	 6
	 4	 1	16	 7	22	11
	24	20	13	 5	27	 9
	17	 8	 0	21	14	 3
	42	53	32	38	48	28
	31	41	52	46	34	49
	45	50	40	29	35	54
	47	43	51	37	30	33


			    K3

	17	20	14	27	 4	 8
	 6	 3	18	 9	24	13
	26	22	15	 7	 1	11
	19	10	 2	23	16	 5
	44	55	34	40	50	30
	33	43	54	48	36	51
	47	52	42	31	37	28
	49	45	53	39	32	35


			    K4

	19	22	16	 1	 6	10
	 8	 5	20	11	26	15
	 0	24	17	 9	 3	13
	21	12	 4	25	18	 7
	46	29	36	42	52	32
	35	45	28	50	38	53
	49	54	44	33	39	30
	51	47	55	41	34	37


			    K5

	21	24	18	 3	 8	12
	10	 7	22	13	 0	17
	 2	26	19	11	 5	15
	23	14	 6	27	20	 9
	48	31	38	44	54	34
	37	47	30	52	40	55
	51	28	46	35	41	32
	53	49	29	43	36	39


			    K6

	23	26	20	 5	10	14
	12	 9	24	15	 2	19
	 4	 0	21	13	 7	17
	25	16	 8	 1	22	11
	50	33	40	46	28	36
	39	49	32	54	42	29
	53	30	48	37	43	34
	55	51	31	45	38	41


			    K7

	25	 0	22	 7	12	16
	14	11	26	17	 4	21
	 6	 2	23	15	 9	19
	27	18	10	 3	24	13
	52	35	42	48	30	38
	41	51	34	28	44	31
	55	32	50	39	45	36
	29	53	33	47	40	43


			    K8

	27	 2	24	 9	14	18
	16	13	 0	19	 6	23
	 8	 4	25	17	11	21
	 1	20	12	 5	26	15
	54	37	44	50	32	40
	43	53	36	30	46	33
	29	34	52	41	47	38
	31	55	35	49	42	45


			    K9

	 0	 3	25	10	15	19
	17	14	 1	20	 7	24
	 9	 5	26	18	12	22
	 2	21	13	 6	27	16
	55	38	45	51	33	41
	44	54	37	31	47	34
	30	35	53	42	48	39
	32	28	36	50	43	46


			    K10

	 2	 5	27	12	17	21
	19	16	 3	22	 9	26
	11	 7	 0	20	14	24
	 4	23	15	 8	 1	18
	29	40	47	53	35	43
	46	28	39	33	49	36
	32	37	55	44	50	41
	34	30	38	52	45	48


			    K11

	 4	 7	 1	14	19	23
	21	18	 5	24	11	 0
	13	 9	 2	22	16	26
	 6	25	17	10	 3	20
	31	42	49	55	37	45
	48	30	41	35	51	38
	34	39	29	46	52	43
	36	32	40	54	47	50


			    K12

	 6	 9	 3	16	21	25
	23	20	 7	26	13	 2
	15	11	 4	24	18	 0
	 8	27	19	12	 5	22
	33	44	51	29	39	47
	50	32	43	37	53	40
	36	41	31	48	54	45
	38	34	42	28	49	52


			    K13

	 8	11	 5	18	23	27
	25	22	 9	 0	15	 4
	17	13	 6	26	20	 2
	10	 1	21	14	 7	24
	35	46	53	31	41	49
	52	34	45	39	55	42
	38	43	33	50	28	47
	40	36	44	30	51	54


			    K14

	10	13	 7	20	25	 1
	27	24	11	 2	17	 6
	19	15	 8	 0	22	 4
	12	 3	23	16	 9	26
	37	48	55	33	43	51
	54	36	47	41	29	44
	40	45	35	52	30	49
	42	38	46	32	53	28


			    K15

	12	15	 9	22	27	 3
	 1	26	13	 4	19	 8
	21	17	10	 2	24	 6
	14	 5	25	18	11	 0
	39	50	29	35	45	53
	28	38	49	43	31	46
	42	47	37	54	32	51
	44	40	48	34	55	30


			    K16

	13	16	10	23	 0	 4
	 2	27	14	 5	20	 9
	22	18	11	 3	25	 7
	15	 6	26	19	12	 1
	40	51	30	36	46	54
	29	39	50	44	32	47
	43	48	38	55	33	52
	45	41	49	35	28	31


	The following are  the bits omitted  in each of  K1 through K16,  by the
reduction from 56 to 48  bits.  The bits are numbered from 0 to 55, and PC-1 has
been omitted.


E1	 9	18	22	25	35	38	43	54	
E2	10	19	23	26	36	39	44	55	
E3	 0	12	21	25	29	38	41	46	
E4	 2	14	23	27	31	40	43	48	
E5	 1	 4	16	25	33	42	45	50	
E6	 3	 6	18	27	35	44	47	52	
E7	 1	 5	 8	20	37	46	49	54	
E8	 3	 7	10	22	28	39	48	51	
E9	 4	 8	11	23	29	40	49	52	
E10	 6	10	13	25	31	42	51	54	
E11	 8	12	15	27	28	33	44	53	
E12	 1	10	14	17	30	35	46	55	
E13	 3	12	16	19	29	32	37	48	
E14	 5	14	18	21	31	34	39	50	
E15	 7	16	20	23	33	36	41	52	
E16	 8	17	21	24	34	37	42	53	
				PC2

	14	17	11	24	 1	 5

	 3	28	15	 6	21	10

	23	19	12	 4	26	 8

	16	 7	27	20	13	 2


	41	52	31	37	47	55

	30	40	51	45	33	48

	44	49	39	56	34	53

	46	42	50	36	29	32


	Notice that the first 24 elements are selected entirely from the  inputs
between  1 an 28 while the latter 24 are take entirely from those between 29 and
56.

	The elements omitted are: 9, 18, 22, 25, 35, 38, 43, and 54.  These  are
taken equally from the two halves.

	Permuted choice 2 is composed of two permuted choices from sets of size
28.  It appears below written in this way.

				PC2


	14	17	11	24	 1	 5

	 3	28	15	 6	21	10

	23	19	12	 4	26	 8

	16	 7	27	20	13	 2


	13	24	 3	 9	19	27

	 2	12	23	17	 5	20

	16	21	11	28	 6	25

	18	14	22	 8	 1	 4


	The omitted bits are  now: 9, 18, 22, and  25 in the first half,  and 7,
10, 15, and 26 in the second half.

               Utilization of the key bits in the various rounds

	The bits are numbered 1 through 64.  The parity bits are unused.

ROUNDS	 1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16

 BIT									      TOTAL

  B1	20  10  16  24   8  17   4      11  14   2   9  23   3      18		14

  B2	 9   1  15  12  18  10  16  24   5  21      13  11  14   2  19		15

  B3	13      22      19   1  15  12      20   6   7   5  21       4		12

  B4	30      26  45  36  43  37  44  25  39  28      35  27  47  40		14

  B5	33  45  36  43  37  44  32      28      35  27  47  30  42  26		14

  B6	    44  32      46  41  48  31  47  30  42  33  38  29  34  37		14

  B7	    41  48  31  40      26  45  38  29  34      25  39  28  46		13

  B8	                                                              		 0

  B9	10   6   7   5  21      13  11  22      19   1  15  12  18  20		14

  B10	 1  23   3      20   6   7   5   8  17   4      22      19   9		13

  B11	    11  14   2   9  23   3      18  10  16  24   8  17   4  13		14

  B12	    42  33  38  29  34      25  32      46  41  48  31  40  30		13

  B13	45  38  29  34      25  39  28  46  41  48  31  40      26  33		14

  B14	44  25  39  28      35  27  47  40      26  45  36  43  37    		13

  B15	41  35  27  47  30  42  33  38  36  43  37  44  32      46    		14

  B16	                                                              		 0

  B17	 6  16  24   8  17   4      22  14   2   9  23   3      20  10		14

  B18	23  15  12  18  10  16  24   8  21      13  11  14   2   9   1		15

  B19	11  22      19   1  15  12  18  20   6   7   5  21      13    		13

  B20	42  26  45  36  43  37  44  32  39  28      35  27  47  30    		14

  B21	38  36  43  37  44  32      46      35  27  47  30  42  33  45		14

  B22	25  32      46  41  48  31  40  30  42  33  38  29  34      44		14

  B23	35  48  31  40      26  45  36  29  34      25  39  28      41		13

  B24	                                                              		 0

  B25	16   7   5  21      13  11  14      19   1  15  12  18  10   6		14

  B26	15   3      20   6   7   5  21  17   4      22      19   1  23		13

  B27	22  14   2   9  23   3      20  10  16  24   8  17   4      11		14

  B28	26  33  38  29  34      25  39      46  41  48  31  40      42		13

  B29	36  29  34      25  39  28      41  48  31  40      26  45  38		13

  B30	32  39  28      35  27  47  30      26  45  36  43  37  44  25		14

  B31	48  27  47  30  42  33  38  29  43  37  44  32      46  41  35		15

  B32	                                                              		 0

  B33	 7  24   8  17   4      22       2   9  23   3      20   6  16		13

  B34	 3  12  18  10  16  24   8  17      13  11  14   2   9  23  15		15

  B35	14      19   1  15  12  18  10   6   7   5  21      13  11  22		14

  B36	21  17   4      22      19   1  23   3      20   6   7   5   8		13

  B37	29  43  37  44  32      46  41  35  27  47  30  42  33  38  36		15

  B38	39      46  41  48  31  40      42  33  38  29  34      25  32		13

  B39	27  31  40      26  45  36  43  34      25  39  28      35  48		13

  B40	                                                              		 0

  B41	24   5  21      13  11  14   2  19   1  15  12  18  10  16   7		15

  B42	12      20   6   7   5  21       4      22      19   1  15   3		12

  B43	     2   9  23   3      20   6  16  24   8  17   4      22  14		13

  B44	17      13  11  14   2   9  23  15  12  18  10  16  24   8  21		15

  B45	43  34      25  39  28      35  48  31  40      26  45  36  29		13

  B46	    28      35  27  47  30  42  26  45  36  43  37  44  32  39		14

  B47	31  47  30  42  33  38  29  34  37  44  32      46  41  48  27		15

  B48	                                                              		 0

  B49	 5   8  17   4      22      19   9  23   3      20   6   7  24		13

  B50	    18  10  16  24   8  17   4  13  11  14   2   9  23   3  12		15

  B51	 2  19   1  15  12  18  10  16   7   5  21      13  11  14    		14

  B52	     4      22      19   1  15   3      20   6   7   5  21  17		12

  B53	34  37  44  32      46  41  48  27  47  30  42  33  38  29  43		15

  B54	28  46  41  48  31  40      26  33  38  29  34      25  39    		13

  B55	47  40      26  45  36  43  37      25  39  28      35  27  31		13

  B56	                                                              		 0

  B57	 8  21      13  11  14   2   9   1  15  12  18  10  16  24   5		15

  B58	18  20   6   7   5  21      13      22      19   1  15  12    		12

  B59	19   9  23   3      20   6   7  24   8  17   4      22       2		13

  B60	 4  13  11  14   2   9  23   3  12  18  10  16  24   8  17    		15

  B61	37      25  39  28      35  27  31  40      26  45  36  43  34		13

  B62	46      35  27  47  30  42  33  45  36  43  37  44  32      28		14

  B63	40  30  42  33  38  29  34      44  32      46  41  48  31  47		14

  B64	                                                              		 0

               Utilization of the key bits in the various rounds

	The bits are numbered 1 through 56, by omitting the parity bits.

ROUNDS	 1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16

 BIT									      TOTAL

  B1	20  10  16  24   8  17   4      11  14   2   9  23   3      18		14

  B2	 9   1  15  12  18  10  16  24   5  21      13  11  14   2  19		15

  B3	13      22      19   1  15  12      20   6   7   5  21       4		12

  B4	30      26  45  36  43  37  44  25  39  28      35  27  47  40		14

  B5	33  45  36  43  37  44  32      28      35  27  47  30  42  26		14

  B6	    44  32      46  41  48  31  47  30  42  33  38  29  34  37		14

  B7	    41  48  31  40      26  45  38  29  34      25  39  28  46		13

  B8	10   6   7   5  21      13  11  22      19   1  15  12  18  20		14

  B9	 1  23   3      20   6   7   5   8  17   4      22      19   9		13

  B10	    11  14   2   9  23   3      18  10  16  24   8  17   4  13		14

  B11	    42  33  38  29  34      25  32      46  41  48  31  40  30		13

  B12	45  38  29  34      25  39  28  46  41  48  31  40      26  33		14

  B13	44  25  39  28      35  27  47  40      26  45  36  43  37    		13

  B14	41  35  27  47  30  42  33  38  36  43  37  44  32      46    		14

  B15	 6  16  24   8  17   4      22  14   2   9  23   3      20  10		14

  B16	23  15  12  18  10  16  24   8  21      13  11  14   2   9   1		15

  B17	11  22      19   1  15  12  18  20   6   7   5  21      13    		13

  B18	42  26  45  36  43  37  44  32  39  28      35  27  47  30    		14

  B19	38  36  43  37  44  32      46      35  27  47  30  42  33  45		14

  B20	25  32      46  41  48  31  40  30  42  33  38  29  34      44		14

  B21	35  48  31  40      26  45  36  29  34      25  39  28      41		13

  B22	16   7   5  21      13  11  14      19   1  15  12  18  10   6		14

  B23	15   3      20   6   7   5  21  17   4      22      19   1  23		13

  B24	22  14   2   9  23   3      20  10  16  24   8  17   4      11		14

  B25	26  33  38  29  34      25  39      46  41  48  31  40      42		13

  B26	36  29  34      25  39  28      41  48  31  40      26  45  38		13

  B27	32  39  28      35  27  47  30      26  45  36  43  37  44  25		14

  B28	48  27  47  30  42  33  38  29  43  37  44  32      46  41  35		15

  B29	 7  24   8  17   4      22       2   9  23   3      20   6  16		13

  B30	 3  12  18  10  16  24   8  17      13  11  14   2   9  23  15		15

  B31	14      19   1  15  12  18  10   6   7   5  21      13  11  22		14

  B32	21  17   4      22      19   1  23   3      20   6   7   5   8		13

  B33	29  43  37  44  32      46  41  35  27  47  30  42  33  38  36		15

  B34	39      46  41  48  31  40      42  33  38  29  34      25  32		13

  B35	27  31  40      26  45  36  43  34      25  39  28      35  48		13

  B36	24   5  21      13  11  14   2  19   1  15  12  18  10  16   7		15

  B37	12      20   6   7   5  21       4      22      19   1  15   3		12

  B38	     2   9  23   3      20   6  16  24   8  17   4      22  14		13

  B39	17      13  11  14   2   9  23  15  12  18  10  16  24   8  21		15

  B40	43  34      25  39  28      35  48  31  40      26  45  36  29		13

  B41	    28      35  27  47  30  42  26  45  36  43  37  44  32  39		14

  B42	31  47  30  42  33  38  29  34  37  44  32      46  41  48  27		15

  B43	 5   8  17   4      22      19   9  23   3      20   6   7  24		13

  B44	    18  10  16  24   8  17   4  13  11  14   2   9  23   3  12		15

  B45	 2  19   1  15  12  18  10  16   7   5  21      13  11  14    		14

  B46	     4      22      19   1  15   3      20   6   7   5  21  17		12

  B47	34  37  44  32      46  41  48  27  47  30  42  33  38  29  43		15

  B48	28  46  41  48  31  40      26  33  38  29  34      25  39    		13

  B49	47  40      26  45  36  43  37      25  39  28      35  27  31		13

  B50	 8  21      13  11  14   2   9   1  15  12  18  10  16  24   5		15

  B51	18  20   6   7   5  21      13      22      19   1  15  12    		12

  B52	19   9  23   3      20   6   7  24   8  17   4      22       2		13

  B53	 4  13  11  14   2   9  23   3  12  18  10  16  24   8  17    		15

  B54	37      25  39  28      35  27  31  40      26  45  36  43  34		13

  B55	46      35  27  47  30  42  33  45  36  43  37  44  32      28		14

  B56	40  30  42  33  38  29  34      44  32      46  41  48  31  47		14

               Utilization of the key  Bits in the various rounds

	The bits are numbered 0 through 55, by omitting the parity bits and PC1.

ROUNDS	 1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16

 BIT									      TOTAL

  B0	 8  21      13  11  14   2   9   1  15  12  18  10  16  24   5		15

  B1	 5   8  17   4      22      19   9  23   3      20   6   7  24		13

  B2	24   5  21      13  11  14   2  19   1  15  12  18  10  16   7		15

  B3	 7  24   8  17   4      22       2   9  23   3      20   6  16		13

  B4	16   7   5  21      13  11  14      19   1  15  12  18  10   6		14

  B5	 6  16  24   8  17   4      22  14   2   9  23   3      20  10		14

  B6	10   6   7   5  21      13  11  22      19   1  15  12  18  20		14

  B7	20  10  16  24   8  17   4      11  14   2   9  23   3      18		14

  B8	18  20   6   7   5  21      13      22      19   1  15  12    		12

  B9	    18  10  16  24   8  17   4  13  11  14   2   9  23   3  12		15

  B10	12      20   6   7   5  21       4      22      19   1  15   3		12

  B11	 3  12  18  10  16  24   8  17      13  11  14   2   9  23  15		15

  B12	15   3      20   6   7   5  21  17   4      22      19   1  23		13

  B13	23  15  12  18  10  16  24   8  21      13  11  14   2   9   1		15

  B14	 1  23   3      20   6   7   5   8  17   4      22      19   9		13

  B15	 9   1  15  12  18  10  16  24   5  21      13  11  14   2  19		15

  B16	19   9  23   3      20   6   7  24   8  17   4      22       2		13

  B17	 2  19   1  15  12  18  10  16   7   5  21      13  11  14    		14

  B18	     2   9  23   3      20   6  16  24   8  17   4      22  14		13

  B19	14      19   1  15  12  18  10   6   7   5  21      13  11  22		14

  B20	22  14   2   9  23   3      20  10  16  24   8  17   4      11		14

  B21	11  22      19   1  15  12  18  20   6   7   5  21      13    		13

  B22	    11  14   2   9  23   3      18  10  16  24   8  17   4  13		14

  B23	13      22      19   1  15  12      20   6   7   5  21       4		12

  B24	 4  13  11  14   2   9  23   3  12  18  10  16  24   8  17    		15

  B25	     4      22      19   1  15   3      20   6   7   5  21  17		12

  B26	17      13  11  14   2   9  23  15  12  18  10  16  24   8  21		15

  B27	21  17   4      22      19   1  23   3      20   6   7   5   8		13

  B28	40  30  42  33  38  29  34      44  32      46  41  48  31  47		14

  B29	47  40      26  45  36  43  37      25  39  28      35  27  31		13

  B30	31  47  30  42  33  38  29  34  37  44  32      46  41  48  27		15

  B31	27  31  40      26  45  36  43  34      25  39  28      35  48		13

  B32	48  27  47  30  42  33  38  29  43  37  44  32      46  41  35		15

  B33	35  48  31  40      26  45  36  29  34      25  39  28      41		13

  B34	41  35  27  47  30  42  33  38  36  43  37  44  32      46    		14

  B35	    41  48  31  40      26  45  38  29  34      25  39  28  46		13

  B36	46      35  27  47  30  42  33  45  36  43  37  44  32      28		14

  B37	28  46  41  48  31  40      26  33  38  29  34      25  39    		13

  B38	    28      35  27  47  30  42  26  45  36  43  37  44  32  39		14

  B39	39      46  41  48  31  40      42  33  38  29  34      25  32		13

  B40	32  39  28      35  27  47  30      26  45  36  43  37  44  25		14

  B41	25  32      46  41  48  31  40  30  42  33  38  29  34      44		14

  B42	44  25  39  28      35  27  47  40      26  45  36  43  37    		13

  B43	    44  32      46  41  48  31  47  30  42  33  38  29  34  37		14

  B44	37      25  39  28      35  27  31  40      26  45  36  43  34		13

  B45	34  37  44  32      46  41  48  27  47  30  42  33  38  29  43		15

  B46	43  34      25  39  28      35  48  31  40      26  45  36  29		13

  B47	29  43  37  44  32      46  41  35  27  47  30  42  33  38  36		15

  B48	36  29  34      25  39  28      41  48  31  40      26  45  38		13

  B49	38  36  43  37  44  32      46      35  27  47  30  42  33  45		14

  B50	45  38  29  34      25  39  28  46  41  48  31  40      26  33		14

  B51	33  45  36  43  37  44  32      28      35  27  47  30  42  26		14

  B52	26  33  38  29  34      25  39      46  41  48  31  40      42		13

  B53	42  26  45  36  43  37  44  32  39  28      35  27  47  30    		14

  B54	    42  33  38  29  34      25  32      46  41  48  31  40  30		13

  B55	30      26  45  36  43  37  44  25  39  28      35  27  47  40		14